package com.gitee.qdbp.general.system.api.tenant.model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import com.gitee.qdbp.general.common.enums.UsingState;
import com.gitee.qdbp.general.system.enums.TenantType;

/**
 * 租户信息查询类
 *
 * @author zhh
 * @version 181029
 */
public class TenantCoreWhere extends TenantCoreBean {

    /** 版本序列号 **/
    private static final long serialVersionUID = 1L;

    /** 主键列表 **/
    private List<String> ids;

    /** 主键前模匹配条件 **/
    private String idStarts;

    /** 主键后模匹配条件 **/
    private String idEnds;

    /** 主键模糊查询条件 **/
    private String idLike;

    /** 租户编号空值/非空值查询 **/
    private Boolean tenantCodeIsNull;

    /** 租户编号列表 **/
    private List<String> tenantCodes;

    /** 租户编号前模匹配条件 **/
    private String tenantCodeStarts;

    /** 租户编号后模匹配条件 **/
    private String tenantCodeEnds;

    /** 租户编号模糊查询条件 **/
    private String tenantCodeLike;

    /** 租户类型(1.团队|2.组织)空值/非空值查询 **/
    private Boolean tenantTypeIsNull;

    /** 租户类型(1.团队|2.组织)列表 **/
    private List<TenantType> tenantTypes;

    /** 名称空值/非空值查询 **/
    private Boolean tenantNameIsNull;

    /** 名称前模匹配条件 **/
    private String tenantNameStarts;

    /** 名称后模匹配条件 **/
    private String tenantNameEnds;

    /** 名称模糊查询条件 **/
    private String tenantNameLike;

    /** 创建人ID空值/非空值查询 **/
    private Boolean creatorIdIsNull;

    /** 创建人ID前模匹配条件 **/
    private String creatorIdStarts;

    /** 创建人ID后模匹配条件 **/
    private String creatorIdEnds;

    /** 创建人ID模糊查询条件 **/
    private String creatorIdLike;

    /** 最小创建时间 **/
    private Date createTimeMin;

    /** 最大创建时间 **/
    private Date createTimeMax;

    /** 最小创建时间 **/
    private Date createTimeMinWithDay;

    /** 最大创建时间 **/
    private Date createTimeMaxWithDay;

    /** 选项空值/非空值查询 **/
    private Boolean optionsIsNull;

    /** 启用状态(1.正常|2.未启用)空值/非空值查询 **/
    private Boolean usingStateIsNull;

    /** 启用状态(1.正常|2.未启用)列表 **/
    private List<UsingState> usingStates;

    /** 获取主键列表 **/
    public List<String> getIds() {
        return ids;
    }

    /** 设置主键列表 **/
    public void setIds(List<String> ids) {
        this.ids = ids;
    }

    /** 增加主键 **/
    public void addId(String... ids) {
        if (this.ids == null) {
            this.ids = new ArrayList<>();
        }
        this.ids.addAll(Arrays.asList(ids));
    }

    /** 获取主键前模匹配条件 **/
    public String getIdStarts() {
        return idStarts;
    }

    /** 设置主键前模匹配条件 **/
    public void setIdStarts(String idStarts) {
        this.idStarts = idStarts;
    }

    /** 获取主键后模匹配条件 **/
    public String getIdEnds() {
        return idEnds;
    }

    /** 设置主键后模匹配条件 **/
    public void setIdEnds(String idEnds) {
        this.idEnds = idEnds;
    }

    /** 获取主键模糊查询条件 **/
    public String getIdLike() {
        return idLike;
    }

    /** 设置主键模糊查询条件 **/
    public void setIdLike(String idLike) {
        this.idLike = idLike;
    }

    /** 判断租户编号是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getTenantCodeIsNull() {
        return tenantCodeIsNull;
    }

    /**
     * 设置租户编号空值查询(true:空值查询|false:非空值查询)
     *
     * @param tenantCodeIsNull 租户编号空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setTenantCodeIsNull(Boolean tenantCodeIsNull) {
        this.tenantCodeIsNull = tenantCodeIsNull;
    }

    /** 获取租户编号列表 **/
    public List<String> getTenantCodes() {
        return tenantCodes;
    }

    /** 设置租户编号列表 **/
    public void setTenantCodes(List<String> tenantCodes) {
        this.tenantCodes = tenantCodes;
    }

    /** 增加租户编号 **/
    public void addTenantCode(String... tenantCodes) {
        if (this.tenantCodes == null) {
            this.tenantCodes = new ArrayList<>();
        }
        this.tenantCodes.addAll(Arrays.asList(tenantCodes));
    }

    /** 获取租户编号前模匹配条件 **/
    public String getTenantCodeStarts() {
        return tenantCodeStarts;
    }

    /** 设置租户编号前模匹配条件 **/
    public void setTenantCodeStarts(String tenantCodeStarts) {
        this.tenantCodeStarts = tenantCodeStarts;
    }

    /** 获取租户编号后模匹配条件 **/
    public String getTenantCodeEnds() {
        return tenantCodeEnds;
    }

    /** 设置租户编号后模匹配条件 **/
    public void setTenantCodeEnds(String tenantCodeEnds) {
        this.tenantCodeEnds = tenantCodeEnds;
    }

    /** 获取租户编号模糊查询条件 **/
    public String getTenantCodeLike() {
        return tenantCodeLike;
    }

    /** 设置租户编号模糊查询条件 **/
    public void setTenantCodeLike(String tenantCodeLike) {
        this.tenantCodeLike = tenantCodeLike;
    }

    /** 判断租户类型(1.团队|2.组织)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getTenantTypeIsNull() {
        return tenantTypeIsNull;
    }

    /**
     * 设置租户类型(1.团队|2.组织)空值查询(true:空值查询|false:非空值查询)
     *
     * @param tenantTypeIsNull 租户类型(1.团队|2.组织)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setTenantTypeIsNull(Boolean tenantTypeIsNull) {
        this.tenantTypeIsNull = tenantTypeIsNull;
    }

    /** 获取租户类型(1.团队|2.组织)列表 **/
    public List<TenantType> getTenantTypes() {
        return tenantTypes;
    }

    /** 设置租户类型(1.团队|2.组织)列表 **/
    public void setTenantTypes(List<TenantType> tenantTypes) {
        this.tenantTypes = tenantTypes;
    }

    /** 增加租户类型(1.团队|2.组织) **/
    public void addTenantType(TenantType... tenantTypes) {
        if (this.tenantTypes == null) {
            this.tenantTypes = new ArrayList<>();
        }
        this.tenantTypes.addAll(Arrays.asList(tenantTypes));
    }

    /** 判断名称是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getTenantNameIsNull() {
        return tenantNameIsNull;
    }

    /** 设置名称空值查询(true:空值查询|false:非空值查询) **/
    public void setTenantNameIsNull(Boolean tenantNameIsNull) {
        this.tenantNameIsNull = tenantNameIsNull;
    }

    /** 获取名称前模匹配条件 **/
    public String getTenantNameStarts() {
        return tenantNameStarts;
    }

    /** 设置名称前模匹配条件 **/
    public void setTenantNameStarts(String tenantNameStarts) {
        this.tenantNameStarts = tenantNameStarts;
    }

    /** 获取名称后模匹配条件 **/
    public String getTenantNameEnds() {
        return tenantNameEnds;
    }

    /** 设置名称后模匹配条件 **/
    public void setTenantNameEnds(String tenantNameEnds) {
        this.tenantNameEnds = tenantNameEnds;
    }

    /** 获取名称模糊查询条件 **/
    public String getTenantNameLike() {
        return tenantNameLike;
    }

    /** 设置名称模糊查询条件 **/
    public void setTenantNameLike(String tenantNameLike) {
        this.tenantNameLike = tenantNameLike;
    }

    /** 判断创建人ID是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getCreatorIdIsNull() {
        return creatorIdIsNull;
    }

    /**
     * 设置创建人ID空值查询(true:空值查询|false:非空值查询)
     *
     * @param creatorIdIsNull 创建人ID空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setCreatorIdIsNull(Boolean creatorIdIsNull) {
        this.creatorIdIsNull = creatorIdIsNull;
    }

    /** 获取创建人ID前模匹配条件 **/
    public String getCreatorIdStarts() {
        return creatorIdStarts;
    }

    /** 设置创建人ID前模匹配条件 **/
    public void setCreatorIdStarts(String creatorIdStarts) {
        this.creatorIdStarts = creatorIdStarts;
    }

    /** 获取创建人ID后模匹配条件 **/
    public String getCreatorIdEnds() {
        return creatorIdEnds;
    }

    /** 设置创建人ID后模匹配条件 **/
    public void setCreatorIdEnds(String creatorIdEnds) {
        this.creatorIdEnds = creatorIdEnds;
    }

    /** 获取创建人ID模糊查询条件 **/
    public String getCreatorIdLike() {
        return creatorIdLike;
    }

    /** 设置创建人ID模糊查询条件 **/
    public void setCreatorIdLike(String creatorIdLike) {
        this.creatorIdLike = creatorIdLike;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMin() {
        return createTimeMin;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMin(Date createTimeMin) {
        this.createTimeMin = createTimeMin;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMax() {
        return createTimeMax;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMax(Date createTimeMax) {
        this.createTimeMax = createTimeMax;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMinWithDay() {
        return createTimeMinWithDay;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMinWithDay(Date createTimeMinWithDay) {
        this.createTimeMinWithDay = createTimeMinWithDay;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMaxWithDay() {
        return createTimeMaxWithDay;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMaxWithDay(Date createTimeMaxWithDay) {
        this.createTimeMaxWithDay = createTimeMaxWithDay;
    }

    /** 判断选项是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getOptionsIsNull() {
        return optionsIsNull;
    }

    /** 设置选项空值查询(true:空值查询|false:非空值查询) **/
    public void setOptionsIsNull(Boolean optionsIsNull) {
        this.optionsIsNull = optionsIsNull;
    }

    /** 判断启用状态(1.正常|2.未启用)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getUsingStateIsNull() {
        return usingStateIsNull;
    }

    /**
     * 设置启用状态(1.正常|2.未启用)空值查询(true:空值查询|false:非空值查询)
     *
     * @param usingStateIsNull 启用状态(1.正常|2.未启用)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setUsingStateIsNull(Boolean usingStateIsNull) {
        this.usingStateIsNull = usingStateIsNull;
    }

    /** 获取启用状态(1.正常|2.未启用)列表 **/
    public List<UsingState> getUsingStates() {
        return usingStates;
    }

    /** 设置启用状态(1.正常|2.未启用)列表 **/
    public void setUsingStates(List<UsingState> usingStates) {
        this.usingStates = usingStates;
    }

    /** 增加启用状态(1.正常|2.未启用) **/
    public void addUsingState(UsingState... usingStates) {
        if (this.usingStates == null) {
            this.usingStates = new ArrayList<>();
        }
        this.usingStates.addAll(Arrays.asList(usingStates));
    }

}